A software design framework is an architectural pattern that provides an extensible template for applications within a domain. In the context of object oriented computer software, a framework provides a set of abstract and concrete classes that can be extended via sub-classing or used directly to solve a particular problem within a particular domain. A set of objects from the classes then works together to carry out responsibilities within a particular problem domain or family of applications.
One of the problem domains in simulators is the simulation of physical objects that can present a video image to an operator. For example, military aircraft carry sensors that can detect objects based on their temperature. This allows the pilot to detect and track vehicles, personnel, and anything else with a heat signature during both daylight hours and darkness.
A simulation for such a vehicle will require a way to generate these images and get them into the operator stations for presentation. While many solutions exist for the image generation part of the problem; the challenge has always been how to combine the video with other graphical symbols and transport it to the desired destinations.
Traditionally, the combination and transportation of the video has been accomplished by an often complex arrangement of analog video mixing equipment, requiring special hardware, long runs of video cables, and as a side effect forcing the simulator into a fixed, non-transportable hardware arrangement. Further, this approach tends to restrict the number of viewers who are able to see the video. For example, it may be desirable to see the video both in a cockpit and also at an operator station. However, when the image is needed in a new physical location, another run of video cables is required.
The prior art has attempted to solve this problem with limited success. For example, U.S. Patent Publication No. 2013/0147819 to Dharmapurikar discloses a method and mechanism for rendering graphics that can utilize both server-side rendering and client-side rendering. The method includes the steps of identifying graphics commands associated with visual data, determining a relative efficiency for transmitting the visual data as pixels from server to a client, sending the visual data to be rendered on the client when the relative efficiency meets or exceeds a threshold value, and rendering the visual data on the server when the relative efficiency is below the threshold value. However, the mechanism and method in Dharmapurikar does not provide video streaming in a container-based architecture.
Statutory Invention Registration No. US H2201 to Stytz, et al. discloses software architecture for enhancing rapid prototyping in distributed virtual environments such as aircraft training simulators. The architecture in Stytz consists of “pallets” and “slots”. Pallets relate to the location inside a “container” where information relating a specific object is located. “Slot” relates to the location of a specific piece of information within the “pallet”. However, the container of Stytz cannot communicate with other containers nor is it capable of communicating with a views container. Further, the architecture in Stytz cannot graphically display information from objects or from a video stream.
The prior art does not disclose or suggest an object oriented framework or container based architecture for the description and manipulation of models of physical entities in the time domain as disclosed. Moreover, the prior art does not disclose the use of an object oriented framework or container based architecture to define a flight simulator over a distributed computer network as disclosed. Further, the prior art does not disclose or suggest an object oriented framework or container based architecture to stream video in a simulation.